package com.yxinsur.imc.business.service;

import java.util.ArrayList;
import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yxinsur.imc.business.domain.ImcSupplierPersistency;
import com.yxinsur.imc.business.form.ImcSuppierPersistencyForm;
import com.yxinsur.imc.business.vo.DenominatorOrderVo;
import com.yxinsur.imc.business.vo.ImcSupplierPersistencyVo;

/**
 * 供应商继续率主Service接口
 *
 * @author imc
 * @date 2021-09-23
 */
public interface IImcSupplierPersistencyService extends IService<ImcSupplierPersistency> {
    /**
     * 查询供应商继续率主
     *
     * @param id 供应商继续率主ID
     * @return 供应商继续率主
     */
    public ImcSupplierPersistency selectImcSupplierPersistencyById(String id);

    /**
     * 查询供应商继续率主列表
     *
     * @param imcSuppierPersistencyForm 供应商继续率主
     * @return 供应商继续率主集合
     */
    public List<ImcSupplierPersistencyVo> selectImcSupplierPersistencyList(ImcSuppierPersistencyForm imcSuppierPersistencyForm);

    /**
     * 新增供应商继续率主
     *
     * @param imcSupplierPersistency 供应商继续率主
     * @return 结果
     */
    public int insertImcSupplierPersistency(ImcSupplierPersistency imcSupplierPersistency);

    /**
     * 修改供应商继续率主
     *
     * @param imcSupplierPersistency 供应商继续率主
     * @return 结果
     */
    public int updateImcSupplierPersistency(ImcSupplierPersistency imcSupplierPersistency);

    /**
     * 批量删除供应商继续率主
     *
     * @param ids 需要删除的供应商继续率主ID
     * @return 结果
     */
    public int deleteImcSupplierPersistencyByIds(Long[] ids);

    /**
     * 删除供应商继续率主信息
     *
     * @param id 供应商继续率主ID
     * @return 结果
     */
    public int deleteImcSupplierPersistencyById(String id);

    /**
     * 计算供应商继续率
     * @param perConfigId
     * @param calculateDate
     * @return
     */
    int calculate(Long perConfigId, String calculateDate);

    void checkSupplierCalculate(Long perConfigId, String calculateDate);

    /**
     * 查询继续率主表分母信息的保单信息
     * @param supplierPersistencyId
     * @return
     */
    ArrayList<String> selectDenominatorOrderParam(Long supplierPersistencyId);

    List<DenominatorOrderVo> selectDenominatorOrderList(ArrayList<String> orderRiskIdList);
}
